40.3.2 排除测试配置

如果应用使用组件扫描,比如@SpringBootApplication@ComponentScan,你可能发现为测试类创建的组件或配置在任何地方都可能偶然扫描到。为了防止这种情况,Spring Boot提供了@TestComponent@TestConfiguration注解,可用在src/test/java目录下的类,以暗示它们不应该被扫描。

只有上层类需要@TestComponent@TestConfiguration注解,如果你在测试类(任何有@Test方法或@RunWith注解的类)中定义@Configuration@Component内部类,它们将被自动过滤。

如果直接使用@ComponentScan(比如不通过@SpringBootApplication),你需要为它注册TypeExcludeFilter,具体参考Javadoc